home *** CD-ROM | disk | FTP | other *** search
- START
- 79 PE
- 2 PORTS
- SCALAR I1 I1
- VECTOR I1 B3
- 1 : GOTO 34;
- 2 : PROC 1 VECTOR I1;
- POPV VI1:1;
- VI[VI1:1] := 0;
- PUSHV VI1:1;
- RETURN;
- 3 : PROC 1;
- ERROR "value out of range";
- RETURN;
- 4 : PROC 1
- SCALAR
- VECTOR I2 I1; group number 1
- PUSHV ADDR VI1:2;
- 5 : VI1:1 := ID - 1; for LIST calculating DIMi
- VI1:1 := VI1:1 + 1; DIM1
- 6 : VI1:3 := VI1:1 - 1;
- 7 : VI1:3 := VI1:3 - 1;
- 8 : VI1:2 := VI1:3;
- VI1:2 := VI1:2 + 1;
- IF VI1:3 < 0 CALL 2;
- IF VI1:3 > 78 CALL 2;
- CONNECT 1 TO 2 AT VI1:2;
- 9 : VI1:3 := VI1:1 + 1;
- 10 : VI1:3 := VI1:3 - 1;
- 11 : VI1:2 := VI1:3;
- VI1:2 := VI1:2 + 1;
- IF VI1:3 < 0 CALL 2;
- IF VI1:3 > 78 CALL 2;
- CONNECT 2 TO 1 AT VI1:2;
- 12 : POPV VI1:2;
- 13 : RETURN; group number : 1
- 14 : PROC 1; configuration : LIST
- VI0:1 := ID - 1; for LIST calculating DIMi
- VI0:1 := VI0:1 + 1; DIM1
- RETURN; configuration : LIST
- 15 : PROC 1
- SCALAR B79 I1 I3 ; OUT
- 16!15 : CALL 14; line 15 column 2
- 17 : STORE VB0:1 TO SB1:1;
- 18!16 : SI1:1 := 1; line 16 column 2
- 19 : SI1:2 := 79;
- 20!16 : IF SI1:1 > SI1:2 GOTO 32; line 16 column 2
- 21!17 : IF SI1:1 < 1 CALL 3; line 17 column 4
- 22 : IF 79 < SI1:1 CALL 3;
- 23 : SI1:3 := ADDR SB1:1 - SIZE( B1 );
- 24 : SI1:4 := SI1:1 * SIZE( B1 );
- 25 : SI1:3 := SI1:3 + SI1:4;
- 26 : IF SB[SI1:3] = FALSE GOTO 29;
- 27!17 : WRITE 'X'; line 17 column 17
- 28 : GOTO 30;
- 29!17 : WRITE ' '; line 17 column 33
- 30 : SI1:1 := SI1:1 + 1;
- 31 : GOTO 20;
- 32!19 : WRITE EOL; line 19 column 2
- 33!20 : RETURN; OUT
- 34 : CALL 4; connections
- 35!23 : CALL 14; line 23 column 2
- 36!24 : VB0:1 := FALSE; line 24 column 4
- 37!26 : CALL 14; line 26 column 2
- 38 : PARALLEL 00000000000000000000000000000000000000100000000000
- 00000000000000000000000000000;
- 39!27 : VB0:1 := TRUE; line 27 column 4
- 40!28 : PARALLEL 11111111111111111111111111111111111111111111111111
- 11111111111111111111111111111;
- 41!30 : SI0:1 := 1; line 30 column 2
- 42 : SI0:2 := 50;
- 43!30 : IF SI0:1 > SI0:2 GOTO 53; line 30 column 2
- 44!31 : CALL 15; OUT line 31 column 4
- 45!32 : CALL 14; line 32 column 4
- 46!33 : VB0:2 := VB0:1; line 33 column 6
- 47 : PROPAGATE VB0:2 OUT 1 IN 2;
- 48!34 : VB0:3 := VB0:1; line 34 column 6
- 49 : PROPAGATE VB0:3 OUT 2 IN 1;
- 50!35 : VB0:1 := VB0:2 <> VB0:3; line 35 column 6
- 51 : SI0:1 := SI0:1 + 1;
- 52 : GOTO 43;
- 53 : END; CELLULAR_AUTOMATON
- STOP
-